from Board import *

class Player:
    """ 
    An abstract class designed to be implemented by any type of player
    which will play our game. Probably just a HumanPlayer and ComputerPlayer
    """
    
    def move(self):
        """
        The move method is called on a Player instance by the game
        system when it is that players turn to move
        """
        self.abstract() # require override
       
    def abstract(self):
        import inspect
        caller = inspect.getouterframes(inspect.currentframe())[1][3]
        raise NotImplementedError(caller + ' must be implemented in subclass') 